package services;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import modelo.Barrio;
import modelo.Domicilio;
import modelo.Empresa;
import modelo.Persona;
import modelo.Propietario;
import modelo.Telefono;
import modelo.Telefonoempresa;
import modelo.TipoDocumento;
import modelo.Tiposuscripcion;
import modelo.Usuario;
import dao.PropietarioDao;

@ManagedBean(name = "propietarioService", eager = true)
@ApplicationScoped
public class PropietarioService implements Serializable {

	private static final long serialVersionUID = -3633162262924159286L;

	private Propietario propietario;
	private List<Propietario> listaPropietario;
	private List<Propietario> listaPropietarioFiltrada;
	private PropietarioDao propietarioDao;
	
	public PropietarioService() {
		super();
		this.propietario = new Propietario();
		this.listaPropietario = new ArrayList<>();
		this.listaPropietarioFiltrada = new ArrayList<>();
		this.propietarioDao = new PropietarioDao();
	}

	@PostConstruct
	public void init()
	{
	listaPropietario = propietarioDao.obtenerPropietarios();
	listaPropietarioFiltrada =propietarioDao.obtenerPropietariosFiltrado();
	}
	
	public void guardarPropietario(Usuario u, Persona p, Empresa e, Domicilio d, List<Telefonoempresa> listTel) throws Exception
	{
		propietarioDao.guardarPropietario(u, p, e, d, listTel);
	}
	
	public void activarPropietario(Propietario p,Tiposuscripcion ts)
	{
		propietarioDao.activarPropietario(p, ts);	
	}

	public Propietario getPropietario() {
		return propietario;
	}

	public void setPropietario(Propietario propietario) {
		this.propietario = propietario;
	}

	public List<Propietario> getListaPropietario() {
		return listaPropietario;
	}

	public void setListaPropietario(List<Propietario> listaPropietario) {
		this.listaPropietario = listaPropietario;
	}

	public PropietarioDao getPropietarioDao() {
		return propietarioDao;
	}

	public void setPropietarioDao(PropietarioDao propietarioDao) {
		this.propietarioDao = propietarioDao;
	}

	public List<Propietario> getListaPropietarioFiltrada() {
		return listaPropietarioFiltrada;
	}

	public void setListaPropietarioFiltrada(
			List<Propietario> listaPropietarioFiltrada) {
		this.listaPropietarioFiltrada = listaPropietarioFiltrada;
	}

	
	
	
}